home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-04-19 | 5.8 KB | 253 lines | [TEXT/MPS ] |
- // Copyright © 1992-1993 Emergent Behavior. All rights reserved.
-
- //=================================================================
- #ifndef _TBENCHMARKDOCUMENT_
- #include "TBenchMarkDocument.h"
- #endif
-
- #ifndef _TBENCHMARKVIEW_
- #include "TBenchMarkView.h"
- #endif
-
- const long kCommandThreeResult = (kCommandsMenuID<<16) + 3;
-
- //=================================================================
- TBenchMarkDocument::TBenchMarkDocument()
- : TDocument(),
- fHardwareTested(FALSE)
- {
-
- }
-
- //-----------------------------------------------------------------
- TBenchMarkDocument::TBenchMarkDocument(const TBenchMarkDocument& source)
- : TDocument(source)
- {
-
- }
-
- //-----------------------------------------------------------------
- MQACollectible*
- TBenchMarkDocument::Clone() const
- {
- return (TDocument*)new TBenchMarkDocument(*this);
- }
-
- //-----------------------------------------------------------------
- TBenchMarkDocument::~TBenchMarkDocument()
- {
-
- }
-
- //-----------------------------------------------------------------
- TView*
- TBenchMarkDocument::DoCreateViews()
- {
- const Point kViewSize = {294, 352};
- return new TBenchMarkView(kViewSize, this);
- }
-
- //-----------------------------------------------------------------
- void
- TBenchMarkDocument::DoSetupMenus(TMenuBar& theMenuBar)
- {
- theMenuBar.Enable(kCommandOneResult);
- TDocument::DoSetupMenus(theMenuBar);
- }
-
- //-----------------------------------------------------------------
- void
- TBenchMarkDocument::DoMenuCommand(long menuResult)
- {
- switch (menuResult) {
-
- case kCommandOneResult:
- TBenchMarkView* view = (TBenchMarkView*)this->fWindow->GetView();
- view->DisplayWaitPict();
- this->TestHardware();
- fAdditionTime = TBenchMarker::TestAdditionSpeed();
- fDivisionTime = TBenchMarker::TestDivisionSpeed();
- fRandomNumberTime = TBenchMarker::TestRandomNumberSpeed();
- fCompositeScore = this->ComputeCompositeScore();
- this->fWindow->GetView()->InvalidateAll();
- this->SetDataSaved(FALSE);
- break;
-
- default:
- TDocument::DoMenuCommand(menuResult);
- } // switch
- }
- //-----------------------------------------------------------------
- Score
- TBenchMarkDocument::ComputeCompositeScore()
- {
- Score addScore = kMacPlusAddTime / (float)this->GetAdditionSpeed();
- Score divScore = kMacPlusDivideTime / (float)this->GetDivisionSpeed();
- Score randScore = kMacPlusRandTime / (float)this->GetRandomNumberSpeed();
- Score score = (addScore+divScore+randScore) / (float)3;
- return score;
- }
-
- //-----------------------------------------------------------------
- Boolean
- TBenchMarkDocument::HasMathChip()
- {
- return fHasMathChip;
- }
-
- //-----------------------------------------------------------------
- Boolean
- TBenchMarkDocument::Has32BitQD()
- {
- return fHas32BitQD;
-
- }
-
- //-----------------------------------------------------------------
- Boolean
- TBenchMarkDocument::UsingSystem7()
- {
- return fUsingSystem7;
- }
-
- //-----------------------------------------------------------------
- Boolean
- TBenchMarkDocument::HasColorQD()
- {
- return fHasColorQD;
- }
-
- //-----------------------------------------------------------------
- Time
- TBenchMarkDocument::GetAdditionSpeed()
- {
- return fAdditionTime;
- }
-
- //-----------------------------------------------------------------
- Time
- TBenchMarkDocument::GetDivisionSpeed()
- {
- return fDivisionTime;
- }
-
- //-----------------------------------------------------------------
- Time
- TBenchMarkDocument::GetRandomNumberSpeed()
- {
- return fRandomNumberTime;
- }
-
- //-----------------------------------------------------------------
- Score
- TBenchMarkDocument::GetCompositeScore()
- {
- return fCompositeScore;
- }
-
- //-----------------------------------------------------------------
- Boolean
- TBenchMarkDocument::HardwareTested()
- {
- return fHardwareTested;
- }
-
- //-----------------------------------------------------------------
- void
- TBenchMarkDocument::TestHardware()
- {
- if ( TComputer::HasMathChip() )
- fHasMathChip = TRUE;
- else
- fHasMathChip = FALSE;
-
- if ( TComputer::HasQuickDraw32() )
- fHas32BitQD = TRUE;
- else
- fHas32BitQD = FALSE;
-
- if ( TComputer::HasSystem7() )
- fUsingSystem7 = TRUE;
- else
- fUsingSystem7 = FALSE;
-
- if ( TComputer::HasColorQuickDraw() )
- fHasColorQD = TRUE;
- else
- fHasColorQD = FALSE;
-
- fHardwareTested = TRUE;
-
- }
-
- //-----------------------------------------------------------------
- void
- TBenchMarkDocument::DoWrite(TFile& aFile)
- {
- long dataBytes;
-
- dataBytes = sizeof(fHardwareTested);
- aFile.WriteData(dataBytes, &fHardwareTested);
-
- dataBytes = sizeof(fHasMathChip);
- aFile.WriteData(dataBytes, &fHasMathChip);
-
- dataBytes = sizeof(fHas32BitQD);
- aFile.WriteData(dataBytes, &fHas32BitQD);
-
- dataBytes = sizeof(fUsingSystem7);
- aFile.WriteData(dataBytes, &fUsingSystem7);
-
- dataBytes = sizeof(fHasColorQD);
- aFile.WriteData(dataBytes, &fHasColorQD);
-
- dataBytes = sizeof(fAdditionTime);
- aFile.WriteData(dataBytes, &fAdditionTime);
-
- dataBytes = sizeof(fDivisionTime);
- aFile.WriteData(dataBytes, &fDivisionTime);
-
- dataBytes = sizeof(fRandomNumberTime);
- aFile.WriteData(dataBytes, &fRandomNumberTime);
-
- dataBytes = sizeof(fCompositeScore);
- aFile.WriteData(dataBytes, &fCompositeScore);
-
- }
-
- //-----------------------------------------------------------------
- void
- TBenchMarkDocument::DoRead(TFile& aFile)
- {
- long dataBytes;
-
- dataBytes = sizeof(fHardwareTested);
- aFile.ReadData(dataBytes, &fHardwareTested);
-
- dataBytes = sizeof(fHasMathChip);
- aFile.ReadData(dataBytes, &fHasMathChip);
-
- dataBytes = sizeof(fHas32BitQD);
- aFile.ReadData(dataBytes, &fHas32BitQD);
-
- dataBytes = sizeof(fUsingSystem7);
- aFile.ReadData(dataBytes, &fUsingSystem7);
-
- dataBytes = sizeof(fHasColorQD);
- aFile.ReadData(dataBytes, &fHasColorQD);
-
- dataBytes = sizeof(fAdditionTime);
- aFile.ReadData(dataBytes, &fAdditionTime);
-
- dataBytes = sizeof(fDivisionTime);
- aFile.ReadData(dataBytes, &fDivisionTime);
-
- dataBytes = sizeof(fRandomNumberTime);
- aFile.ReadData(dataBytes, &fRandomNumberTime);
-
- dataBytes = sizeof(fCompositeScore);
- aFile.ReadData(dataBytes, &fCompositeScore);
-
- }
-
-